package com.gxuwz.hmr.project.system.region.service.impl;

import java.util.List;
import java.util.ArrayList;

import com.gxuwz.hmr.common.utils.DateUtils;
import com.gxuwz.hmr.common.utils.text.Convert;
import com.gxuwz.hmr.project.system.region.domain.Region;
import com.gxuwz.hmr.project.system.region.mapper.RegionMapper;
import com.gxuwz.hmr.project.system.region.service.IRegionService;
import com.ruoyi.framework.web.domain.Ztree;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.project.system.region.mapper.RegionMapper;
import com.ruoyi.project.system.region.domain.Region;
import com.ruoyi.project.system.region.service.IRegionService;
import com.ruoyi.common.utils.text.Convert;

/**
 * 行政区域信息Service业务层处理
 * 
 * @author ruoyi
 * @date 2021-05-05
 */
@Service
public class RegionServiceImpl implements IRegionService
{
    @Autowired
    private RegionMapper regionMapper;

    /**
     * 查询行政区域信息
     * 
     * @param regionId 行政区域信息ID
     * @return 行政区域信息
     */
    @Override
    public Region selectRegionById(Long regionId)
    {
        return regionMapper.selectRegionById(regionId);
    }

    /**
     * 查询行政区域信息列表
     * 
     * @param region 行政区域信息
     * @return 行政区域信息
     */
    @Override
    public List<Region> selectRegionList(Region region)
    {
        return regionMapper.selectRegionList(region);
    }

    /**
     * 新增行政区域信息
     * 
     * @param region 行政区域信息
     * @return 结果
     */
    @Override
    public int insertRegion(Region region)
    {
        region.setCreateTime(DateUtils.getNowDate());
        return regionMapper.insertRegion(region);
    }

    /**
     * 修改行政区域信息
     * 
     * @param region 行政区域信息
     * @return 结果
     */
    @Override
    public int updateRegion(Region region)
    {
        region.setUpdateTime(DateUtils.getNowDate());
        return regionMapper.updateRegion(region);
    }

    /**
     * 删除行政区域信息对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteRegionByIds(String ids)
    {
        return regionMapper.deleteRegionByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除行政区域信息信息
     * 
     * @param regionId 行政区域信息ID
     * @return 结果
     */
    @Override
    public int deleteRegionById(Long regionId)
    {
        return regionMapper.deleteRegionById(regionId);
    }

    /**
     * 查询行政区域信息树列表
     * 
     * @return 所有行政区域信息信息
     */
    @Override
    public List<Ztree> selectRegionTree()
    {
        List<Region> regionList = regionMapper.selectRegionList(new Region());
        List<Ztree> ztrees = new ArrayList<Ztree>();
        for (Region region : regionList)
        {
            Ztree ztree = new Ztree();
            ztree.setId(region.getRegionId());
            ztree.setpId(region.getRparentId());
            ztree.setName(region.getRegionName());
            ztree.setTitle(region.getRegionName());
            ztrees.add(ztree);
        }
        return ztrees;
    }
}
